// main.cpp
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QSurfaceFormat>
#include <QQmlContext>
#include "DateHelper.h"
#include "ClockModel.h"
#include "FilePicker.h"

int main(int argc, char *argv[])
{
    // 配置 OpenGL ES 表面格式
    QSurfaceFormat format;
    format.setAlphaBufferSize(8);      // 确保 Alpha 通道位数
    format.setBlueBufferSize(8);       // 蓝色通道位数
    format.setGreenBufferSize(8);      // 绿色通道位数
    format.setRedBufferSize(8);        // 红色通道位数
    format.setDepthBufferSize(24);     // 深度缓冲区位数
    format.setStencilBufferSize(8);    // 模板缓冲区位数
    format.setRenderableType(QSurfaceFormat::OpenGLES); // 使用 OpenGL ES
    format.setVersion(3, 0);           // OpenGL ES 3.0
    QSurfaceFormat::setDefaultFormat(format);

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    
    // 创建 DateHelper 实例并将其暴露给 QML（保留向后兼容）
    DateHelper dateHelper;
    engine.rootContext()->setContextProperty("dateHelper", &dateHelper);
    
    // 创建 ClockModel 实例并将其暴露给 QML
    ClockModel clockModel;
    engine.rootContext()->setContextProperty("clockModel", &clockModel);
    
    // 创建 FilePicker 实例并将其暴露给 QML
    FilePicker filePicker;
    engine.rootContext()->setContextProperty("filePicker", &filePicker);

    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    if (engine.rootObjects().isEmpty())
        return -1;

    return app.exec();
}